`timescale 1ns / 1ns

`define RST        1'b1

`define ZERO_WORD  64'h00000000_00000000
`define PC_START   64'h00000000_80000000     
`define REG_BUS    4  : 0
`define REG_WIDTH  63 : 0
`define RAM_BUS    63 : 0
`define RAM_WIDTH  63 : 0

`define REG_ADDR_0 5'b00000   


`define AXI_ADDR_WIDTH      64
`define AXI_DATA_WIDTH      64
`define AXI_ID_WIDTH        4
`define AXI_USER_WIDTH      1

`define SIZE_B              2'b00
`define SIZE_H              2'b01
`define SIZE_W              2'b10
`define SIZE_D              2'b11

`define REQ_READ            1'b0
`define REQ_WRITE           1'b1

`define RISCV_PRIV_MODE_U   0
`define RISCV_PRIV_MODE_S   1
`define RISCV_PRIV_MODE_M   3

`define STALL_NONE          3'b000
`define STALL_IF            3'b001
`define STALL_ID            3'b010
`define STALL_EXE           3'b011
`define STALL_MEM           3'b100

//clint 
`define MTIME_ADDR     64'h00000000_0200bff8
`define MTIMECMP_ADDR  64'h00000000_02004000





